package com.cty.advice;

import com.cty.pojo.Demo;
import org.apache.log4j.Logger;
import org.springframework.aop.MethodBeforeAdvice;

import java.lang.reflect.Method;

/**
 * @Auther: cty
 * @Date: 2020/3/7 16:58
 * @Description:  前置通知类
 * 注意：因为Schema-based方式每个通知类都要实现一个特定接口，因此通知方法在不同的类中。
 * @version: 1.0
 */
public class MyBeforeAdvice implements MethodBeforeAdvice {
    // 获取日志对象
    Logger log = Logger.getLogger(MyBeforeAdvice.class);

    /**
     * 前置通知方法
     * @param method  切点方法的Method对象
     * @param objects  切点方法的参数
     * @param o  切点所在对象
     * @throws Throwable
     */
    @Override
    public void before(Method method, Object[] objects, Object o) throws Throwable {
        log.debug("前置通知-Schema-based");
        log.debug("切点方法名："+method.getName());
        for(Object obj:objects){
            log.debug("切点方法参数："+obj.toString());
        }
        log.debug("切点所在对象："+o);
        log.debug("前置通知-end");
    }
}
